package net.suncaper.demo.service;

import net.suncaper.demo.domain.Store;
import net.suncaper.demo.domain.StoreExample;
import net.suncaper.demo.mapper.StoreMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
@Service
public class StoreServiceImpl implements StoreService{
    @Autowired
    private StoreMapper storeMapper;
    @Override
    public List<Store> findStore(){

        return storeMapper.selectByExample(new StoreExample());
    }

    @Override
    public List<Store> findStoreByUId(int userId){
        StoreExample storeExample = new StoreExample();
        if(userId != 0 ){
            storeExample.createCriteria().andUserIdEqualTo(userId);
        }
        return storeMapper.selectByExample(storeExample);
    }

    @Override
    public List<Store> findStoreByName(String storeName){
        StoreExample storeExample = new StoreExample();
        if(storeName != null && (!storeName.equals(""))){
            storeExample.createCriteria().andStoreNameLike("%" + storeName + "%");
        }
        return storeMapper.selectByExample(storeExample);
    }

    @Override
    public List<Store> findStoreByCity(String storeCity){
        StoreExample storeExample = new StoreExample();
        if(storeCity != null && (!storeCity.equals(""))){
            storeExample.createCriteria().andStoreCityLike("%"+storeCity+"%");
        }
        return storeMapper.selectByExample(storeExample);
    }

    @Override
    public List<Store> findStoreByState(int state) {
        StoreExample storeExample = new StoreExample();
        storeExample.createCriteria().andStoreStateEqualTo(state);
        return storeMapper.selectByExample(storeExample);
    }


    @Override
    public void saveAddStoreMes(Store store) {
        storeMapper.insert(store);
    }

    @Override
    public void saveUpdateStoreMes(Store store) {

        if(store.getStoreId()==null||store.getStoreId().equals("")){
            System.out.println("ERROR");
        }else{
            storeMapper.updateByPrimaryKey(store);
        }

    }

    @Override
    public void delStoreBySIdMes(Store store) {
        StoreExample storeExample=new StoreExample();
        storeExample.createCriteria().andStoreIdEqualTo(store.getStoreId());
        storeMapper.deleteByExample(storeExample);
    }

    @Override
    public void editStoreMes(Store store) {
        StoreExample storeExample = new StoreExample();
    }

    @Transactional
    public Store findStoreBySId(int storeId){
        return storeMapper.selectByPrimaryKey(storeId);
    }

}
